让CentOS默认生成core dump

CentOS中默认设置了ulimit -c 0也就是默认程序不生成core dump,这样很麻烦,每次启动程序前都要让用户先执行一次ulimit -c ulimited,有时候用户忘记则不生成core,很不利于错误分析,所以研究了下如何让系统默认就生成core.

在网上找了部分资料,看到了

CentOS 5中ulimit值调整并永久生效的方法

http://www.sunchis.com/html/os/linux/2011/0609/338.html

 

这篇文章,其中说通过编辑/etc/security/limits.conf文件可以实现ulimit的值设定,测试了nofile后的确可行,但是写入了

* soft core ulimited
* hard core ulimited

重新登陆却没有效果

[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0

通过研究,发现/etc/profile文件中有一句

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

二话不说,把第二行用#注释掉后,即

# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1

保存重新登陆用户,再次查看,一切正常!

[root@localhost ~]# ulimit -a
core file size          (blocks, -c) ulimited

留下只言片语: